#ifndef __POS_ESTIMATOR_H
#define __POS_ESTIMATOR_H
#include "sensors_types.h"
#include "imu.h"
#include "maths.h"
#include "nvic.h"

typedef enum
{
    X = 0,
    Y,
    Z
} axis_e;

void update_position_estimator(const sensorData_t *SensorData, state_t *State, float dt);
void init_position_estimator(void);
void update_depth_topic(float newBaroAlt);
void update_IMU_topic(const Axis3f accBF);
void update_estimated_topic(float dt);
void pos_and_velocity_predict(int axis, float dt, float acc);
void pos_and_velocity_correct(int axis, float dt, float e, float w);
void publish_estimated_topic(state_t *state);
void pos_estimator_reset(void);


#endif
